package com.xdcplus.web.service.wip;

import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.dto.wip.WipMarkingRecordDTO;
import com.xdcplus.web.common.pojo.dto.wip.WipMarkingRecordFilterDTO;
import com.xdcplus.web.common.pojo.entity.wip.WipMarkingRecord;
import com.xdcplus.web.common.pojo.vo.wip.WipMarkingRecordVO;

import java.util.List;


/**
 * 打标结批记录表(按工序维度)(WipMarkingRecord)表服务接口层
 *
 * @author Devin.sang
 * @since 2023-05-15 22:05:44
 */
public interface WipMarkingRecordService extends BaseService<WipMarkingRecord, WipMarkingRecord, WipMarkingRecordVO> {

    /**
     * 添加打标结批记录表(按工序维度)(WipMarkingRecord)
     *
     * @param wipMarkingRecordDTO 打标结批记录表(按工序维度)(WipMarkingRecordDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveWipMarkingRecord(WipMarkingRecordDTO wipMarkingRecordDTO);

    /**
     * 修改打标结批记录表(按工序维度)(WipMarkingRecord)
     *
     * @param wipMarkingRecordDTO 打标结批记录表(按工序维度)(WipMarkingRecordDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateWipMarkingRecord(WipMarkingRecordDTO wipMarkingRecordDTO);

    /**
     * 批量保存或更新打标结批记录表(按工序维度)(WipMarkingRecord)
     *
     * @param wipMarkingRecordList 打标结批记录表(按工序维度)(WipMarkingRecordList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<WipMarkingRecord> wipMarkingRecordList);

    /**
     * 批量保存或更新打标结批记录表(按工序维度)(WipMarkingRecordDTOList)
     *
     * @param wipMarkingRecordDTOList 打标结批记录表(按工序维度)(WipMarkingRecordDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<WipMarkingRecordDTO> wipMarkingRecordDTOList);

    /**
     * 删除打标结批记录表(按工序维度)(WipMarkingRecord)
     *
     * @param id 打标结批记录表(按工序维度)(WipMarkingRecord)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteWipMarkingRecordLogical(Long id);
    
    Boolean deleteWipMarkingRecordByIds(String ids);

    /**
     * 查询打标结批记录表(按工序维度)(WipMarkingRecord)
     *
     * @param wipMarkingRecordFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipMarkingRecordVO>} 状态信息
     */
    List<WipMarkingRecordVO> queryWipMarkingRecordVOList(WipMarkingRecordFilterDTO wipMarkingRecordFilterDTO);

    /**
     * 查询打标结批记录表(按工序维度)(WipMarkingRecord)
     *
     * @param wipMarkingRecordFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipMarkingRecordVO>} 状态信息
     */
    PageVO<WipMarkingRecordVO> queryWipMarkingRecord(WipMarkingRecordFilterDTO wipMarkingRecordFilterDTO);

    /**
     * 查询一个
     *
     * @param id 打标结批记录表(按工序维度)(WipMarkingRecord)主键
     * @return {@link WipMarkingRecordVO} 打标结批记录表(按工序维度)(WipMarkingRecord)信息
     */
    WipMarkingRecordVO queryWipMarkingRecordById(Long id);
}
